/*
 * File:   rota.h
 * Author: daniel
 *
 * Created on 6 de Junho de 2011, 20:19
 */

#ifndef _ROTA_H
#define	_ROTA_H

using std::vector;

class Rota{
public:
    Rota(vector<int>, vector<double>, vector<double>, vector<double>, vector<double>,
          vector<double>, vector<double>, vector<double>, vector<double>);

    void setTempoTotalDestaRota(int);

    void setCargaMaximaDoVeiculo(int);

    void setCacidadeDoVeiculo(int);

    void setTempoMaximoDeViagemPermitido(int);

    void setRota(vector<int>);

    vector<int> getRota();

    double getTempoTotalDestaRota();

    double getCargaMaximaDoVeiculo();

    double getCacidadeDoVeiculo();

    double getTempoMaximoDeViagemPermitido();


vector<double> getA();
vector<double> getB();
vector<double> getD();
vector<double> getW();
vector<double> getR();
vector<double> getT();
vector<double> getQ();
vector<double> getF();

void setA(int);
void setB(int);
void setD(int);
void setW(int);
void setR(int);
void setT(int);
void setQ(int);
void setF(int);


void setVectorA(vector<double>);
void setVectorB(vector<double>);
void setVectorD(vector<double>);
void setVectorW(vector<double>);
void setVectorR(vector<double>);
void setVectorT(vector<double>);
void setVectorQ(vector<double>);
void setVectorF(vector<double>);

private:

    vector<int> rota;
    vector<double> A;
    vector<double> B;
    vector<double> D;
    vector<double> W;
    vector<double> R;
    vector<double> T;
    vector<double> Q;
    vector<double> F;
    int tempoTotalDestaRota;
    int cargaMaximaDoVeiculo;
    int cacidadeDoVeiculo;
    int tempoMaximoDeViagemPermitido;
};
#endif	/* _ROTA_H */
